package cn.algorithms_4ed.algo.sort;

/**
 * 选择排序
 * <p/>
 * 统计显示，如果数组长度为N，
 * 平均比较次数为 N*N/2，
 * 平均交换次数约为 N。
 * <p/>
 * User: erhu
 * Date: 13-6-15
 * Time: 上午10:25
 */
public class Selection extends Sort {

    public static void main(String[] args) {
        Selection selection = new Selection();
        selection.sort().show();
    }

    @Override
    Sort sort() {
        int size = data.length;

        for (int i = 0; i < size; i++) {
            for (int j = i; j < size; j++) {

                int min_index = i;
                if (less(data[j], data[i])) {
                    min_index = j;
                }
                exchange(i, min_index);
            }
        }
        return this;
    }
}
